package org.social.db;

import org.social.db.cache.*;
import org.social.db.dao.*;
import com.sojoys.artifact.build.data.base.BaseCache;
import com.xiaoleilu.hutool.date.DateUtil;
import com.xiaoleilu.hutool.date.TimeInterval;
import com.xiaoleilu.hutool.log.Log;
import com.xiaoleilu.hutool.log.LogFactory;
/**
 * 数据存储
 */
public class DbSave {
	
	static final Log log = LogFactory.get(DbSave.class);
	
	public static void init(){
		TimeInterval timer = DateUtil.timer();
		// 活动
		ActivityCache.me().initLastPrimaryKey(ActivityDaoImpl.me().getLastId());
		
		// 活动条目
		ActivityEntryCache.me().initLastPrimaryKey(ActivityEntryDaoImpl.me().getLastId());
		
		// 全服限购商品购买记录
		CommodityBuyRecordCache.me().initLastPrimaryKey(CommodityBuyRecordDaoImpl.me().getLastId());
		
		// 字典库
		DictionariesCache.me().initLastPrimaryKey(DictionariesDaoImpl.me().getLastId());
		
		// 好友关系
		FriendCache.me().initLastPrimaryKey(FriendDaoImpl.me().getLastId());
		
		// 功能开关
		FunctionSwitchCache.me().initLastPrimaryKey(FunctionSwitchDaoImpl.me().getLastId());
		
		// 礼包码
		GiftCodeCache.me().initLastPrimaryKey(GiftCodeDaoImpl.me().getLastId());
		
		// 礼包
		GiftPackageCache.me().initLastPrimaryKey(GiftPackageDaoImpl.me().getLastId());
		
		// 拦截信息
		InterceptInfoCache.me().initLastPrimaryKey(InterceptInfoDaoImpl.me().getLastId());
		
		// 通知
		NoticeCache.me().initLastPrimaryKey(NoticeDaoImpl.me().getLastId());
		
		// 玩家映射表
		PlayerMapCache.me().initLastPrimaryKey(PlayerMapDaoImpl.me().getLastId());
		
		// 社交服离散数据
		SocialDiscreteDataCache.me().initLastPrimaryKey(SocialDiscreteDataDaoImpl.me().getLastId());
		
		
		
		log.info("--> DbSave init autoId ({})",timer.intervalMs());
		
		// 活动
		ActivityCache.me().loadAll();
		
		// 活动条目
		ActivityEntryCache.me().loadAll();
		
		// 字典库
		DictionariesCache.me().loadAll();
		
		// 拦截信息
		InterceptInfoCache.me().loadAll();
		
		// 玩家映射表
		PlayerMapCache.me().loadAll();
		log.info("--> DbSave init ({})",timer.intervalMs());
	}

	public static boolean saveAll() throws Exception{
		TimeInterval timer = DateUtil.timer();
		// 活动
		ActivityCache.me().saveAll();
		// 活动条目
		ActivityEntryCache.me().saveAll();
		// 全服限购商品购买记录
		CommodityBuyRecordCache.me().saveAll();
		// 字典库
		DictionariesCache.me().saveAll();
		// 动态商品
		DynamicCommodityCache.me().saveAll();
		// 好友关系
		FriendCache.me().saveAll();
		// 功能开关
		FunctionSwitchCache.me().saveAll();
		// 礼包码
		GiftCodeCache.me().saveAll();
		// 礼包
		GiftPackageCache.me().saveAll();
		// 拦截信息
		InterceptInfoCache.me().saveAll();
		// 通知
		NoticeCache.me().saveAll();
		// 玩家映射表
		PlayerMapCache.me().saveAll();
		// 社交服离散数据
		SocialDiscreteDataCache.me().saveAll();
		// 微信积分兑换商城
		WechatShopOrderCache.me().saveAll();
		log.info("--> DbSave saveAll ({})",timer.intervalMs());
		return true;
	}
	public static boolean shutdownAll() throws Exception{
		saveAll();
		BaseCache.shutdown();
		return true;
	}
//自定义内容起始位置
//自定义内容结束位置
}